package main

import (
	"fmt"
	"os"
)

//函数版
//查看 新增 删除
type student struct {
	name string
	id   int64
}

var (
	allStudent map[int64]*student
)

func newStudent(id int64, name string) *student {
	return &student{
		name: name,
		id:   id,
	}
}
func showAllStudents() {
	for i, i2 := range allStudent {
		fmt.Printf("学号：%d  姓名：%s\n", i, i2.name)
	}
}
func addStudent() {
	//创建一个学生
	var (
		id   int64
		name string
	)
	fmt.Println("请输入的学号")
	_, _ = fmt.Scanln(&id)
	fmt.Println("请输入的姓名")
	_, _ = fmt.Scanln(&name)
	newStu := newStudent(id, name)
	allStudent[id] = newStu
}
func deleteStudents() {
	fmt.Println("请输入要删除学生的学号")
	var num int64
	_, _ = fmt.Scanln(&num)
	_, ok := allStudent[num]
	if !ok {
		fmt.Println("输入的学号不存在")
	} else {
		delete(allStudent, num)
	}

}
func main() {
	allStudent = make(map[int64]*student, 50)
	for {
		fmt.Println("学生管理系统")
		fmt.Println(`
					1.查看所有学生
					2.新增学生
					3.删除学生
					4.退出	
				`)
		fmt.Println("请输入编号")
		var inputNum int
		_, _ = fmt.Scanln(&inputNum)
		fmt.Printf("你选择了%d这个选项\n", inputNum)
		switch inputNum {
		case 1:
			showAllStudents()
		case 2:
			addStudent()
		case 3:
			deleteStudents()
		case 4:
			os.Exit(1)
		default:
			fmt.Println("输入错误！")
		}
	}
}
